iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0
AI & Data

30天認識主流大數據框架:Hadoop + Spark + Flink系列 第 3

Day03 - 大數據計算:批處理與流處理

  • 分享至 

  • xImage
  •  

有界數據 vs 無界數據

在數據流處理中,有界數據 (Bounded Data)無界數據 (Unbounded Data) 是兩個重要的概念,這裡的界是時間邊界,指數據流的時間終點,我們可以把它像像成一個「閘門」的感覺,在處理有界數據時,我們會將閘門放下,這時新數據都會被擋在閘門外無法流入;反之,無界數據沒有閘門,因此新資料仍會不斷流入。總結來說:

  • 有界數據的資料是靜止不動的,與之對應的處理方式稱為批處理 (batch processing)
  • 無界數據的資料是連續持續變動的,與之對應的處理方式稱為流處理 (stream processing)

https://ithelp.ithome.com.tw/upload/images/20230918/201389393PNfjZmLrc.png

批處理計算 Batch processing

前面提到有界數據是靜止不動的,因此我們在處理時會先蒐集完數據再進行計算,以批 (batch) 為單位處理資料,一般來說速度較慢,通常是使用在離線的數據處理上,這種情況下雖然不需要考慮新資料的流入,但也更加關注數據規模

常見的批處理計算有:MapReduce、Spark

Spark Streaming 屬於微批處理,本質上還是批處理,差別在於將每個 batch 切得更小,以此來加快每批數據的處理速度,進而達到近似流處理的效率。

流處理計算 Stream processing

流處理須兼顧無界數據「連續」且「持續變動」兩個特點,數據的蒐集與計算是同時發生的,通常是使用在及時的數據處理上,如交易系統、串流分析與日誌分析等,關注的重點在於低延遲

常見的流處理計算有:Flink、S4、Storm、Samza

Apache Kafka 本身不屬於流處理計算,而是一個分散式的訊息佇列,用於可靠地接收、存儲和分發數據消息,因此常與流處理計算引擎搭配使用。

補充

大部分的大數據資料處理都屬於批處理與流處理的範疇,但有少部分情況下,使用特定的計算方法可以加速處理的效率,如:

  • 圖計算:針對圖結構數據的處理,常見技術有:Pregel、Graphx、PowerGraph、Hama、GoldenOrb等
  • 交互查詢計算:針對數據存儲與查詢的處理,常見技術有:Dremel、Hive、Cassandra、Impala等

預告

由於批處理與流處理所的使用情境與使用技術差異甚大,過去企業採用的架構多是直接採用兩套不同技術,然而這樣的作法其實存在著一些缺點,因此又有人提出了流批一體的架構,下一篇文章就將為大家介紹大數據處理的兩個經典架構:LambdaKappa

參考資料

大数据的计算模式:批量计算和流式计算
批处理计算与流处理计算的区别是什么?
Process Unbounded and Bounded Data


上一篇
Day02 - 初探大數據
下一篇
Day04 - 大數據架構:Lambda 與 Kappa
系列文
30天認識主流大數據框架:Hadoop + Spark + Flink30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言